Skip to content

refactor: restructure deploy for multi-instance GCE deployment#2

Merged
lsh1215 merged 5 commits intomainfrom
refactor/deploy-restructure
Feb 8, 2026
Merged

refactor: restructure deploy for multi-instance GCE deployment#2
lsh1215 merged 5 commits intomainfrom
refactor/deploy-restructure

Conversation

@lsh1215
Copy link
Member

@lsh1215 lsh1215 commented Feb 7, 2026

Summary

  • 6대 GCE 인스턴스(db, mq, app, ocr, alert, mon)별 Docker Compose 파일 분리
  • Traefik 리버스 프록시 + 모니터링 스택(Prometheus, Grafana, Loki) 설정 추가
  • 환경변수 템플릿 시스템 (envsubst 기반 .template → 실제 설정 변환)
  • CI 워크플로우: YAML lint, Compose 검증, ShellCheck, 템플릿 변수 체크
  • CD 워크플로우: repository_dispatch 트리거, GCE 매트릭스 배포, 헬스체크
  • 수동 배포 가이드 (1,199줄) 및 배포 스크립트 (deploy-instance.sh, deploy-all.sh)

Changes

  • compose/: 6개 인스턴스별 docker-compose 파일 신규
  • config/: Traefik, 모니터링, MySQL 설정 파일
  • env/: 환경변수 템플릿 (hosts, backend, mysql, rabbitmq)
  • scripts/: setup-env.sh, deploy-instance.sh, deploy-all.sh
  • docs/manual-deploy.md: 전체 수동 배포 가이드
  • .github/workflows/: CI (검증) + CD (배포) 워크플로우 재작성
  • 기존 단일 서버용 compose 파일 삭제 (docker-compose.backend/portainer/traefik.yml)

Test plan

  • yamllint 로컬 검증
  • GitHub Secrets 설정 후 CD 워크플로우 트리거 테스트
  • 수동 배포 스크립트로 E2E 배포 검증

- Remove old single-server compose files (backend, portainer, traefik)
- Add 6 per-instance compose files (db, mq, app, ocr, alert, mon)
- Add Traefik dual-mode config (IP mode + domain mode template)
- Add monitoring configs (prometheus, loki, promtail, grafana, otel)
- Add env example files (hosts, backend, mysql, rabbitmq)
- Add setup-env.sh for template rendering
- Update .gitignore for generated configs and secrets
- Add docs/manual-deploy.md with step-by-step guide for 6 GCE instances
- Add scripts/deploy-instance.sh for single instance deployment
- Add scripts/deploy-all.sh for sequential full deployment
CI: Replace broken tar upload with config validation
  - YAML lint, compose validation, ShellCheck, template var check

CD: Replace dangerous single-server deploy with GCE matrix deploy
  - repository_dispatch trigger from backend CI
  - Sequential deployment to app/ocr/alert instances
  - GCP auth + gcloud compute scp/ssh based deployment
  - Health check after each deployment
Move Jaeger OTLP ports to 4320(gRPC)/4321(HTTP) to avoid
conflict with otel-collector on port 4317/4318.
@lsh1215 lsh1215 merged commit bbd10f1 into main Feb 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant